31A - Worms Evolution - CodeForces Solution


implementation *1200

Please click on ads to support us..

Python Code:

from itertools import combinations
n = int(input())
l = [*([i,int(x)] for i,x in enumerate(input().split(),1))]
a = [*combinations(l,3)]
cnt = 1
for x in a:
    if(x[0][1]==x[1][1]+x[2][1]):cnt = 0;print(x[0][0],x[1][0],x[2][0]);break
    elif(x[1][1]==x[0][1]+x[2][1]):cnt = 0;print(x[1][0],x[0][0],x[2][0]);break
    elif(x[2][1]==x[1][1]+x[0][1]):cnt = 0;print(x[2][0],x[1][0],x[0][0]);break
if(cnt):print(-1)

C++ Code:

#include <iostream>
#include <algorithm>
#include <map>

using namespace std;
int main() {
    int t=1;//cin>>t;
    while(t--) {
        int n;
        cin >> n;
        int a[n];
        multimap<int, int> mp;
        int ctr = 0;
        for (int &i: a) {
            cin >> i;
            mp.emplace(i, ctr++);
        }
        sort(a, a + n);
        auto aa = mp.begin(), b = mp.begin(), c = mp.begin();
        bool ok = false;
        for (int i = n - 1; i > -1; i--) {
            for (int j = i - 1; j > -1; j--) {
                for (int k = j - 1; k > -1; k--) {
                    if (a[j] + a[k] == a[i]) {
                        aa = mp.find(a[i]);
                        b = mp.find(a[j]);
                        c = mp.find(a[k]);
                        ok = true;
                        break;
                    }
                    if (ok)break;
                }
                if (ok)break;
            }
        }
        if (!ok){
            printf("-1\n");
        return 0;
    }
      if(b == c)b++;
      printf("%d %d %d\n",aa->second+1,b->second+1,c->second+1);
    }
    return 0;
}

  	 	 				  	  									 		   	


Comments

Submit
0 Comments
More Questions

528. Random Pick with Weight
470. Implement Rand10() Using Rand7()
866. Prime Palindrome
1516A - Tit for Tat
622. Design Circular Queue
814. Binary Tree Pruning
791. Custom Sort String
787. Cheapest Flights Within K Stops
779. K-th Symbol in Grammar
701. Insert into a Binary Search Tree
429. N-ary Tree Level Order Traversal
739. Daily Temperatures
647. Palindromic Substrings
583. Delete Operation for Two Strings
518. Coin Change 2
516. Longest Palindromic Subsequence
468. Validate IP Address
450. Delete Node in a BST
445. Add Two Numbers II
442. Find All Duplicates in an Array
437. Path Sum III
436. Find Right Interval
435. Non-overlapping Intervals
406. Queue Reconstruction by Height
380. Insert Delete GetRandom O(1)
332. Reconstruct Itinerary
368. Largest Divisible Subset
377. Combination Sum IV
322. Coin Change
307. Range Sum Query - Mutable